﻿using System;
using System.Collections.Generic;
using System.Configuration.Provider;
using System.Web;

using Blog.Framework.Models;
using Blog.Framework.Utility;

namespace Blog.Framework.DataAccess
{
    public abstract class BusinessObjectProvider : ProviderBase
    {
        public abstract PagedList<PostSummary> GetRecentPostSummary(int index, int postsPerPage);
        public abstract PagedList<PostSummary> GetPostsForTag(string tag, int index, int postsPerPage);
        public abstract PagedList<PostSummary> GetPostsForMonth(int month, int year, int index, int postsPerPage);

        public abstract Post GetPostForUrl(string url);

        public abstract PagedList<ArchiveCount> GetRecentArchiveCounts(int numberOfCounts);
        public abstract List<ArchiveCount> GetArchiveCounts();

        public abstract List<TagWeight> GetTagWeights();
    }
}